﻿#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
// 写⼀个简单的猜数字游戏
// 游戏要求：
// 1. 电脑⾃动⽣成1~100的随机数
// 2. 玩家猜数字，猜数字的过程中，根据猜测数据的⼤⼩给出⼤了或⼩了的反馈，直到猜对，游戏结束
// 在c语言中实现即可



// 提示生成随机数可以使用   设置生成随机数的种子 - srand((unsigned int)time(NULL)); 
//  生成1-100的随机数 int r = rand() % 100 + 1;

//1.写一个菜单函数menu  （选择1进入游戏（循环玩游戏），选择0退出游戏，选择其他选择错误请再次选择）
void menu()
{
	// 打印游戏菜单
	printf("*********************\n");
	printf("******** 1. play ****\n");
	printf("******** 0. exit ****\n");
	printf("*********************\n");
}

// 2.写一个玩游戏的函数game （要求加上次数限制，只可以猜五次）
void game()
{
	//1.生成随机数
	int r = rand() % 100 + 1;

	//2.猜数字
	int count = 5;  // 五次猜的机会
	int guess = 0;
	while (count)
	{
		printf("你还有%d次机会", count);
		printf("请猜数字: ");
		scanf("%d", &guess);
		if (guess > r)
		{
			printf("猜大了\n");
		}
		else if (guess < r)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("恭喜你猜对了\n");
		}
		count--;
	}
	if (count == 0)
	{
		printf("你失败了，正确答案是: %d\n", r);
	}
}

// 3.写main函数主体
int main()
{
	int input = 0;
	// 设置随机数的生成起点 一个程序中只需要设置一次即可
	srand((unsigned int)time(NULL)); 
	do
	{
		// 打印游戏菜单
		menu();
		printf("请选择: ");
		scanf("%d", &input);
		switch(input)
		{
		case 1:
			printf("猜数字\n");
			// 游戏逻辑
			game();
			break;
		case 0:
			printf("退出游戏");
			break;
		default:
			printf("选择错误，请重新选择");
			break;
		}

	} while (input);
	return 0;
}